突然有個聲音出現在耳旁:
「嘿,年輕人,看你這麼有雄心壯志,讓我助你一臂之力吧
這個盒子,架構如同陣列,你應該已經學會相關技巧了吧,我把它命名為乾坤盒
可依照你的意思變化大小,同時裡頭可以存放你想要存放的物品
希望你能可能好好運用它,我很看好你的嘿,別當個白癡勇者了」
(啵的一聲,一個盒子莫名出現在手中)
為什麼要幫我,該不會有詐吧
尼瑪,一波未平一波又起啊
你才是白痴!!!
你全家都是白痴!!!
=====================================
「陣列」
顧名思義是由「臨兵鬥者,皆陣列在前」裡的陣列所取名,可以存放許多戰力
(喂~咳咳,這邊不是話唬爛專區啦,別亂教啦!)
(以上為話唬爛)
「陣列」
可以在陣列資料結構中儲存相同類型的多個變數
可以指定陣列元素的類型來宣告陣列
使用規則:
需要使用類別陣列宣告變數為陣列,new 運算子是用來建立陣列,並將陣列元素初始化為其預設值
類型[] 名稱 = new 類型[長度];
string[] Value = new string[10];
string[] Value = new string[]{"?","?"};
那讓我們實際體驗一下陣列的魅力吧
[Step by Step簡易實戰]
Step1.
請開啟Day7方案,並如圖新增四個label跟兩個Button
Step2.
接著要來設定對話框的使用
「專案」→「加入參考」
「組件」→「架構」→「Microsoft.VisualBasic」
Step3.
先設定好這次實作的相關變數
箱子容量為10
Step4.
接著先撰寫好取得箱子內容清單的方法,以及判斷取出時輸入的是否為數字
//判斷輸入值是否為數字
private bool IsNumber(string TextBoxValue)
{
try
{
int i = Convert.ToInt32(TextBoxValue);
return true;
}
catch
{
return false;
}
}
//取得目前盒子內儲存清單
private void ArrayData()
{
string tmpString = "";
for (int i = 0; i < BoxArray.Length; i++)
{
tmpString += "第" + (i + 1) + "空間位置 => " + BoxArray[i] + Environment.NewLine;
}
label5.Text = tmpString;
}
Step5.
接著將要顯示的變數與執行取得清單的方法設置好
label2.Text = BoxArray.Length.ToString();
label4.Text = count.ToString();
ArrayData();
Step6.
將Button1的事件裡,撰寫存入的語法
string SaveName = Interaction.InputBox("存入物品名稱", "存入", "", -1, -1); //-1表示在螢幕中間
//驗證是否為空
if (!String.IsNullOrEmpty(SaveName))
{
BoxArray[countArrayKey] = SaveName;
count--;
countArrayKey++;
label4.Text = count.ToString();
}
else if (count <= 0)
{
MessageBox.Show("可儲存的容量不足", "Error Message");
}
//重新取得清單
ArrayData();
Step6.
將Button2的事件裡,撰寫取出的語法
string GetString = Interaction.InputBox("取出物品名稱", "取出", "", -1, -1);
//驗證是否輸入數字
if (IsNumber(GetString))
{
int GetIndex = Convert.ToInt16(GetString) - 1;
//驗證是否大於0,小於10
if (GetIndex > -1 && GetIndex < 10)
{
if (!String.IsNullOrEmpty(BoxArray[GetIndex]))
{
MessageBox.Show("取出物品:" + BoxArray[GetIndex]);
}
}
}
Step7.
按下F5,先執行存入按鈕事件,在嘗試取出的按鈕事件
=====================================
筆者云:你才Bug,你全家都Bug!!
參考資料:
陣列 (C# 程式設計手冊)
https://docs.microsoft.com/zh-tw/dotnet/csharp/programming-guide/arrays/
請問您所寫的取出是不是只是跳出視窗顯示已取出,但實際上label並沒有真的取出,而且空間數也沒有增加,因為想把他用得完整一些~~
是的(偷懶被抓包了)
你可以在Step6試看看補強一下
哈哈了解~~也謝謝你的教學提供XD